/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package window;

import data.Dinheiro;
import java.awt.Component;
import java.awt.Window;
import java.util.Calendar;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import util.Const;
import util.Util;

/**
 *
 * @author
 * PedroLZ
 */
public class SupportWindow
{
	private static final String 
			TITULO_MSG_ERRO			= "TITULO_MSG_ERRO",
			TITULO_MSG_SUCESSO		= "TITULO_MSG_SUCESSO",
			TITULO_MSG_WARNING		= "TITULO_MSG_WARNING",
			ERRO_INESPERADO			= "ERRO_INESPERADO";

	public static final int
			OPCAO_SIM		= JOptionPane.YES_OPTION,
			OPCAO_NAO		= JOptionPane.NO_OPTION,
			OPCAO_CALCELAR	= JOptionPane.CANCEL_OPTION,
			OPCAO_FECHAR	= JOptionPane.CLOSED_OPTION;
	

	static public void centralizaJanela( Window janela )
	{
		janela.setLocationRelativeTo( null );
	}

	static public void finalizarPrograma() {
		System.exit(0);
	}
	
	static public void fecharDialogo( JDialog dialogo ) {
		dialogo.setVisible(false);
	}
	
	static public void setToInvisible( JComponent componente )
	{
		componente.setVisible( false );
	}

	static void setToVisible(JComponent componente)
	{
		componente.setVisible( true );
	}
	
	static public void limparTabela( JTable tabela )
	{
		for( int line=0; line < tabela.getRowCount(); line++ )
		{
			for( int column=0; column < tabela.getColumnCount(); column++ )
				tabela.setValueAt( "", line, column );
		}
	}
	
	//-------------------------------------------------------------------------
	// métodos mostrar mensagem
	//-------------------------------------------------------------------------	
	static public void mostrarMensagemSucesso( String msg )
	{
		JOptionPane.showMessageDialog(null, msg, Const.getString(TITULO_MSG_SUCESSO), JOptionPane.PLAIN_MESSAGE );
	}
	
	static public void mostrarMensagemInputIncorreta( Exception ex )
	{
		JOptionPane.showMessageDialog(null, ex.getMessage(), Const.getString(TITULO_MSG_WARNING), JOptionPane.WARNING_MESSAGE );
	}
	
	static public void mostrarMensagemErro( Exception ex )
	{
		ex.printStackTrace();
		JOptionPane.showMessageDialog(null, Const.getString(ERRO_INESPERADO), Const.getString(TITULO_MSG_ERRO), JOptionPane.ERROR_MESSAGE);
	}

	static public void mostrarMensagem( String msg )
	{
		JOptionPane.showMessageDialog( null, msg );
	}
	
	static int mostrarMensagemConfirmacao( String msg )
	{
		return( JOptionPane.showConfirmDialog( null, msg ) );
	}
	
	//-------------------------------------------------------------------------
	// métodos getParameter
	//-------------------------------------------------------------------------	
	static public int getParameter(String text, int valueDefault)
	{
		try
		{
			return( Integer.valueOf( text ) );
		}
		catch(Exception ex){
			return valueDefault;
		}
	}
	
	static public Dinheiro getParameter(String text, Dinheiro valueDefault) 
	{
		try
		{
			return new Dinheiro( text );
		}
		catch(Exception ex){
			return valueDefault;
		}
	}
	
	static public Calendar getParameter( String text, Calendar valueDefault )
	{
		try
		{
			return Util.toCalendar( text );
		}
		catch(Exception ex){
			return valueDefault;
		}
	}
}
